package com.ggh.handler;

import com.ggh.entity.RoomBeanP;
import com.ggh.entity.UserBean;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * 游戏逻辑
 * @author yuwei
 * @date 2019年4月17日 上午 11：40
 */
public class GameService {

	/**
	 * 创建房间前的判断+实现
	 */
	public void Esablish( RoomBeanP room) {
		// 参数：房间、局数-maxnumber、房卡数-money、支付方式-paytype、创建人—userid
		// 房间人数、低分、下注倍数、时间[准备-抢庄-下注-比牌]、牌型、特殊、局数、观战
		// 获取房间基本信息
		// 准备时间
		room.setTime01(15);
		// 抢庄时间
		room.setTime02(10);
		// 下注时间
		room.setTime03(10);
		// 比牌时间
		room.setTime04(10);
		// 调用创建房间的方法
		room = CreateRoomP.foundRoom(room);

		if (room.getGame_type()>2) {
			room.time1();
		}else {
			room.time2();
		}

	}

	/**
	 * 创建房间前的判断+实现
	 */
	public void EsablishBR(RoomBeanP room) {
		/**
		 * 参数：房间、局数-maxnumber、房卡数-money、支付方式-paytype、创建人—userid
		 * 房间人数、低分、下注倍数、时间[准备-抢庄-下注-比牌]、牌型、特殊、局数、观战
		 *  获取房间基本信息
		 */
		// 准备时间
		room.setTime01(5);
		// 下注时间
		room.setTime02(15);
		// 比牌时间
		room.setTime03(10);
		// 调用创建房间的方法
		room = CreateRoomP.foundRoom(room);

		if (room.getGame_type()>2) {
			room.time1();
		}else {
			room.time2();
		}

	}
	/**
	 * 加入房间
	 *
	 */
	public HashMap Matching(String roomno, UserBean user) {
		HashMap<Integer,RoomBeanP> map=new HashMap();
		//判断是否存在在房间内
		String user_room = Public_State_P.isUser_room(user.getUserid());
		if (StringUtils.isNotEmpty(user_room)){
			map.put(1,Public_State_P.roomMap.get(roomno));
			return  map;
		}
		 user_room = Public_State_PSiRen.isUser_room(user.getUserid());
		if (StringUtils.isNotEmpty(user_room)){
			map.put(1,Public_State_PSiRen.roomMap.get(roomno));
			return  map;
		}
		// 获取此房间信息
		RoomBeanP room = Public_State_P.roomMap.get(roomno);
		if (room==null){
			room= Public_State_PSiRen.roomMap.get(roomno);;

		}
		// 判断房间是否存在
		if (room == null) {
			return null;
		} else if (room.getMoney() > user.getMoney()) {
			return null;
		} else {
			/**调用加入房间的方法 */
			boolean b = MatchingRoomP.joinRoom(user, room);
			if (!b) {
			return null;
			}
			map.put(2,room);
			return map;
		}
	}
}
